/*
  Programa GEFE - Gestión de eventos lúdicos.
  Copyright (C) 2010  Antonio Ramírez Marti

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef ACOLITOINFORME_H
#define ACOLITOINFORME_H

#include <QDialog>
#include <reporteactividades.h>
#include <reportebebidas.h>

namespace Ui {
    class AcolitoInforme;
}

class AcolitoInforme : public QDialog {
    Q_OBJECT
    Q_PROPERTY (bool conectado READ isConectado WRITE setConectado)

public:
    AcolitoInforme(QWidget *parent = 0);
    ~AcolitoInforme();

    /*!
      Devuelve el estado de conexion del acolito
      */

    bool isConectado() const;

public slots:

    /*!
      Establece el estado de conexion del acolito
      @param estado Estado de conexion del acolito
      - @b TRUE: Conecta el acolito
      - @b FALSE: Desconecta el acolito
      @note Modifica el objeto
      */

    void setConectado(bool estado);

protected:
    void changeEvent(QEvent *e);

private:
    Ui::AcolitoInforme *ui;
    ReporteActividades *repoActividades;    ///< Generador de reportes de actividades
    ReporteBebidas *repoBebidas;            ///< Generador de reportes de venta de bebidas
    bool conexion;          ///< Estado de conexion

    /*!
      Prepara el acolito
      */

    void setup();

    /*!
      Genera los datos necesarios para la evaluacion de asistentes
      */

    void evaluaAsistentes();

    /*!
      Genera los datos necesarios para la evaluacion de las habitaciones
      */

    void evaluaAlojamiento();

    /*!
      Genera los datos necesarios para la evaluacion de las actividades
      */

    void evaluaActividades();

    /*!
      Genera los datos necesarios para la evaluacion de las bebidas
      */

    void evaluaBebidas();

    /*!
      Recupera los datos del evento
      */

    void datosEvento();
};

#endif // ACOLITOINFORME_H
